package day0415;

import java.util.concurrent.atomic.AtomicInteger;

public class LeetCode11 {
    /**
     * 11，盛最多水的容器
     * 中等
     * 提示
     * 给定一个长度为 n 的整数数组 height 。有 n 条垂线，第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
     * <p>
     * 找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。
     * <p>
     * 返回容器可以储存的最大水量。
     * <p>
     * 说明：你不能倾斜容器
     * 输入：[1,8,6,2,5,4,8,3,7]
     * 输出：49
     * 解释：图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能够容纳水（表示为蓝色部分）的最大值为 49。
     */
    public static void main(String[] args) {
        int[] height = new int[]{1, 8, 6, 2, 5, 4, 8, 3, 7};

        System.out.println(maxArea(height));
    }

    private static int maxArea(int[] height) {
        int max = Integer.MIN_VALUE;
        int i = 0;
        int index = height.length - 1;
        while (i < index) {
            if (height[i] < height[index]) {
                max = Math.max(height[i] * (index - i), max);
                i++;
            } else {
                max = Math.max(height[index] * (index - i), max);
                index--;
            }
        }
        return max;
    }

}
